<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="Content-Language" content="zh-CN"><link href="stylesheet.css" media="all" rel="stylesheet" type="text/css">
<title>BKI Backend Interface</title>
<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>
</head><body class="CHAPTER">
<div>
<table summary="Header navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><th colspan="5" align="center" valign="bottom">PostgreSQL 8.2.3 中文文档</th></tr>
<tr><td width="10%" align="left" valign="top"><a href="storage-page-layout.html" accesskey="P">后退</a></td><td width="10%" align="left" valign="top"><a href="storage.html">快退</a></td><td width="60%" align="center" valign="bottom"></td><td width="10%" align="right" valign="top"><a href="planner-stats-details.html">快进</a></td><td width="10%" align="right" valign="top"><a href="bki-format.html" accesskey="N">前进</a></td></tr>
</table>
<hr align="LEFT" width="100%"></div>
<div class="CHAPTER"><h1><a name="BKI"></a>章53. BKI 后端接口</h1>
<div>
<dl>
<dt><b>目录</b></dt>
<dt>53.1. <a href="bki-format.html">BKI 文件格式</a></dt>
<dt>53.2. <a href="bki-commands.html">BKI 命令</a></dt>
<dt>53.3. <a href="bki-structure.html">系统初始化的 BKI 文件的结构</a></dt>
<dt>53.4. <a href="bki-example.html">例子</a></dt>
</dl>
</div>
<p>后端接口(BKI)文件是一些用特殊语言写的脚本，这些脚本是 PostgreSQL 后端能够理解的，以特殊的"bootstrap"(引导)模式运行，这种模式允许在不存在系统表的零初始条件下执行数据库函数，而普通的 SQL 命令要求系统表必须存在。因此 BKI 文件可以用于在第一时间创建数据库系统。可能除此以外也没有其它用处。</p>
<p>在创建一个新的数据库集群的时候，<span class="APPLICATION">initdb</span> 就是使用 BKI 文件来完成其工作的一部分。<span class="APPLICATION">initdb</span> 使用的输入的文件是作为编译 PostgreSQL 的一部分，由一个叫 <tt class="FILENAME">genbki.sh</tt> 的程序创建的，这个程序读取源代码树目录的 <tt class="FILENAME">src/include/catalog/</tt> 目录里面的几个特殊格式的 C 头文件。生成的 BKI 文件叫 <tt class="FILENAME">postgres.bki</tt> 并且通常安装在安装树里的 <tt class="FILENAME">share</tt> 子目录。</p>
<p>相关的信息可以在有关 <span class="APPLICATION">initdb</span> 的文档中找到。</p>
</div>
<div>
<hr align="LEFT" width="100%">
<table summary="Footer navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td width="33%" align="left" valign="top"><a href="storage-page-layout.html" accesskey="P">后退</a></td><td width="34%" align="center" valign="top"><a href="index.html" accesskey="H">首页</a></td><td width="33%" align="right" valign="top"><a href="bki-format.html" accesskey="N">前进</a></td></tr>
<tr><td width="33%" align="left" valign="top">数据库分页文件</td><td width="34%" align="center" valign="top"><a href="internals.html" accesskey="U">上一级</a></td><td width="33%" align="right" valign="top">BKI 文件格式</td></tr>
</table>
</div>
</body></html>